// 1. 导入 axios,router,store
import router from "@/router";
import axios from "axios";
import store from "@/store";

// 2. 创建 axios 实例，并配置根路径、配置拦截器
const request = axios.create({
  baseURL: "http://interview-api-t.itheima.net",
  timeout: 5000,
});
// 请求拦截器
request.interceptors.request.use(
  (config) => {
    // 在发送请求之前做些什么
    // 1. 设置请求头
    config.headers.Authorization =
      // js中 使用 Vuex  先导入仓库store 直接使用store
      "Bearer " + store.state.user.token;
    return config;
  },
  (error) => {
    // 对请求错误做些什么
    return Promise.reject(error);
  }
);

// 响应拦截器
request.interceptors.response.use(
  (response) => {
    // 对响应数据做些什么
    return response.data; // 直接返回数据,后续组件中使用无需解构data
  },
  (error) => {
    // 对响应错误做些什么
    if (error.response && error.response.status === 401) {
      // localStorage.removeItem("mj-pc-token");
      store.commit("user/updateToken", null);
      // 跳转到登录
      router.push("/login");
    }
    return Promise.reject(error);
  }
);

// 3. 导出配置好的实例
export default request;
